package com.fl.nj.service;

import com.fl.nj.entity.ServerService;
import java.util.List;
import java.util.Map;

/**
 * 服务Service接口
 * 定义服务的业务操作
 */
public interface ServerServiceService {
    /**
     * 保存服务信息
     * @param serverService 服务实体
     * @return 是否保存成功
     */
    boolean save(ServerService serverService);
    
    /**
     * 更新服务信息
     * @param serverService 服务实体
     * @return 是否更新成功
     */
    boolean update(ServerService serverService);
    
    /**
     * 根据ID删除服务
     * @param id 服务ID
     * @return 是否删除成功
     */
    boolean delete(Long id);
    
    /**
     * 根据ID获取服务信息
     * @param id 服务ID
     * @return 服务实体
     */
    ServerService getById(Long id);
    
    /**
     * 根据服务名称和设备ID获取服务信息
     * @param serviceName 服务名称
     * @param deviceId 设备ID
     * @return 服务实体
     */
    ServerService getByServiceNameAndDeviceId(String serviceName, Long deviceId);
    
    /**
     * 根据设备ID获取服务列表
     * @param deviceId 设备ID
     * @return 服务列表
     */
    List<ServerService> getByDeviceId(Long deviceId);
    
    /**
     * 获取所有服务信息（包含服务类型和设备名称）
     * @return 服务列表
     */
    List<ServerService> getAllWithDetails();
    
    /**
     * 分页查询服务信息（包含服务类型和设备名称）
     * @param params 包含分页参数和查询条件的Map
     * @return 服务列表
     */
    List<ServerService> getPageListWithDetails(Map<String, Object> params);
    
    /**
     * 获取服务总数
     * @param params 包含查询条件的Map
     * @return 服务总数
     */
    int getTotal(Map<String, Object> params);
}